import { Pipe, PipeTransform } from '@angular/core';
import { format } from 'date-fns-tz';

@Pipe({
  name: 'dateFnsTz',
})
export class DateFnsTzPipe implements PipeTransform {
  transform(value: string | number | Date | undefined): string {
    if (!value) return '';

    // 获取用户时区
    const timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;

    let date: Date;

    // 秒级和毫秒级时间戳处理
    if (typeof value === 'number') {
      date =
        value.toString().length === 10
          ? new Date(value * 1000) // 秒级时间戳
          : new Date(value); // 毫秒级时间戳
    } else {
      date = new Date(value); // 字符串或 Date 对象
    }

    // 格式化日期为 "yyyy-MM-dd HH:mm:ss"
    return format(date, 'yyyy-MM-dd HH:mm:ss', { timeZone });
  }
}
